package com.cg.asm.body.domain.vo.user;

import com.cg.asm.body.util.constants.DicEnum;
import lombok.Data;

/**
 * 用户列表视图对象
 * 使用场景:
 * 1.进入用户管理功能时，根据此对象返回用户列表信息
 *
 * @author yuzhenjing
 * @date 2018/8/31 上午9:24
 */
@Data
public class UserPagedVO {

    /**
     * 用户Id
     */
    private String userId;
    /**
     * 用户头像
     */
    private String userPortrait;
    /**
     * 用户名
     */
    private String username;
    /**
     * 用户姓名
     */
    private String personName;
    /**
     * 用户姓别
     */
    private String userGender;
    private String userGenderName;
    /**
     * 用户部门
     */
    private String orgCode;
    private String orgName;
    /**
     * 电子邮箱
     */
    private String userEmail;
    /**
     * 手机号码
     */
    private String userPhone;
    /**
     * 是否启用
     */
    private boolean isEnabled;
    /**
     * 帐户类别
     * sys_manager     系统管理员
     * sys_universal   系统普通用户
     */
    private String accountType;
    /**
     * 创建人名称
     */
    private String creatorPersonName;


    /**
     * 根据用户性别编码返回性别名称
     *
     * @return
     */
    public String getUserGenderName() {
        if (DicEnum.USER_GENDER_MALE.getKey().equals(this.userGender)) {
            return DicEnum.USER_GENDER_MALE.getValue();
        } else if (DicEnum.USER_GENDER_FAMALE.getKey().equals(this.userGender)) {
            return DicEnum.USER_GENDER_FAMALE.getValue();
        }
        return userGenderName;
    }

    /**
     * 根据是否启用返回帐户状态值
     * 前端直接引用accountStatus，调用此方法
     *
     * @return
     */
    public String getAccountStatus() {
        if (isEnabled) {
            return DicEnum.USER_ACCOUNT_STATUS_START.getValue();
        } else {
            return DicEnum.USER_ACCOUNT_STATUS_STOP.getValue();
        }
    }

    /**
     * 根据帐户类别返回帐户类别名称
     * 前端直接引用accountTypeName，调用此方法
     *
     * @return
     */
    public String getAccountTypeName() {
        if (DicEnum.USER_ACCOUNT_TYPE_MANAGER.getKey()
                .equals(this.accountType)) {
            return DicEnum.USER_ACCOUNT_TYPE_MANAGER.getValue();
        } else if (DicEnum.USER_ACCOUNT_TYPE_UNIVERSAL.getKey()
                .equals(this.accountType)) {
            return DicEnum.USER_ACCOUNT_TYPE_UNIVERSAL.getValue();
        } else {
            return "未知";
        }
    }

}
